﻿using System;
using System.Data;

namespace Kyoh.Lib.Component.Traces
{
    /// <summary>トレース出力に変更があった際に発生するイベントの引数。</summary>
    public class TraceDataChangeEventArgs : EventArgs
    {
        /// <summary><see cref="TraceDataChangeEventArgs"/> クラスの新しいインスタンスを初期化します。</summary>
        /// <param name="row">変更のあった <see cref="TraceData"/>。</param>
        /// <param name="action">変更されたアクションを表す <see cref="DataRowAction"/>。</param>
        public TraceDataChangeEventArgs(TraceData row, DataRowAction action)
        {
            Row = row;
            Action = action;
        }

        /// <summary>変更のあった <see cref="TraceData"/> を取得します。</summary>
        public TraceData Row { get; private set; }
        /// <summary>変更されたアクションを表す <see cref="DataRowAction"/> を取得します。</summary>
        public DataRowAction Action { get; private set; }
    }

    /// <summary>トレース出力に変更があった際に発生するイベントのハンドラ。</summary>
    /// <param name="sender">イベントを発生させたオブジェクト。</param>
    /// <param name="e">イベント引数。</param>
    public delegate void TraceDataChangeEventHandler(object sender, TraceDataChangeEventArgs e);

}
